//----------------折线图，全学科走势-------------------
//1.得有盒子（页面布局已经有了 id="line"）
//2.引入echart.min.js（已经引入）
//3.初始化echarts
//let myChart = echarts.init(document.querySelector('#line'))
//4.配置项
//5.创建图表
function lineChart() {
    let myChart = echarts.init(document.querySelector('#line'))
    let option = {
        title: {
            //标题配置
            text: '2022年学科薪资走势',//标题
            //颜色，文字大小
            textstyle: {
                // color: '',
                fontsize: 18,
            },
            //位置
            left: 10,
            top: 15,
        },
        xAxis: {
            type: 'category',
            data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
            //x轴上的文字
            axisLabel: {
                color: '#999',
            },
            //轴线
            axisLine: {
                lineStyle: {
                    color: '#ccc',
                    type: 'dashed'
                }
            }
        },
        yAxis: {
            type: 'value',
            splitLine: {
                lineStyle: {
                    type: 'dashed'
                }
            }
        },
        //鼠标移入提示
        tooltip: {
            trigger: 'axis'
        },
        //直角坐标系网格设置
        grid: {
            top: '20%'
        },
        //颜色
        //color：【'颜色1','颜色2'】
        color: {
            type: 'linear', // 表示线性渐变
            x: 0,
            y: 0,
            x2: 0,
            y2: 1,
            colorStops: [
                {
                    offset: 0,
                    color: 'red' // 0% 处的颜色
                },
                {
                    offset: 1,
                    color: '#5D75F0' // 100% 处的颜色
                }
            ],
            global: false // 缺省为 false。一般都不需要修改。（如果是true，则哪些数字0/1等等表示真实的像素值了）
        },

        series: [
            {
                data: [9000, 12000, 15000, 13000, 10000, 18000, 14000, 10000, 12000, 13000, 15000, 19000],
                type: 'line',
                smooth: true,
                //线条样式
                lineStyle: {
                    width: 6
                },
                //线条上的标记大小
                symbolSize: 10,
                areaStyle: {
                    color: {
                        type: 'linear', // 表示线性渐变
                        x: 0,
                        y: 0,
                        x2: 0,
                        y2: 1,
                        colorStops: [
                            {
                                offset: 0,
                                color: '#499FEE' // 0% 处的颜色
                            },
                            {
                                offset: 0.8,
                                color: 'rgba(255,255,255,0.2)'
                            },
                            {
                                offset: 1,
                                color: 'rgba(255,255,255,0)' // 100% 处的颜色
                            }
                        ],
                        global: false // 缺省为 false。一般都不需要修改。（如果是true，则哪些数字0/1等等表示真实的像素值了）
                    }
                }
            }
        ]
    };
    // 5.创建图表
    myChart.setOption(option)
}
lineChart()

//----------------饼图，班级薪资分布------------------------
const classSalaryChart = () => {
    let myChart = echarts.init(document.querySelector('#salary'))
    let option = {
        // 标题配置
        title: {
            text: '班级薪资分布',
            left: 10, // 10 表示10px，设置标题的大小，位置
            top: 15,
            textStyle: {
                fontSize: 16
            }
        },
        // 鼠标移入显示
        tooltip: {
            trigger: 'item'
        },
        // 图例的设置
        legend: {
            bottom: '6%',
            left: 'center'
            // itemWidth: 12
        },
        // 颜色的设置
        color: ['#FDA224', '#5097FF', '#3ABCFA', '#34D39A'],
        // 系列数据
        series: [
            {
                name: '班级薪资分布', // 这个名字会显示在 提示框中
                type: 'pie', // 表示饼图
                radius: ['50%', '64%'], // 内外圈的半径
                // 每一项的样式
                itemStyle: {
                    borderRadius: 10,
                    borderColor: '#fff',
                    borderWidth: 2
                },
                label: {
                    show: false,
                    position: 'center'
                },   // 文字标签不显示
                // 视觉引导线不显示
                labelLine: {
                    show: false
                },
                data: [
                    { value: 1048, name: '1万以下' },
                    { value: 235, name: '1万-2万' },
                    { value: 580, name: '1.5万-2万' },
                    { value: 484, name: '2万以上' }
                ]
            }
        ]
    }
    myChart.setOption(option)
}
classSalaryChart()
//------------------柱状图：班级每一组薪资---------------
const groupSalaryChart = () => {
    let myChart = echarts.init(document.querySelector('#lines'))
    let option = {
        //网格配置，向外拉柱状图
        grid: {
            left: 70,
            top: 30,
            right: 30,
            bottom: 50
        },
        // x轴配置
        xAxis: {
            type: 'category',
            data: ['张三', '李四', '赵云', '张飞', '马超', '黄忠', '亚索', '盲僧'],
            //设置轴线文字
            axisLabel: {
                color: '#999'
            },
            //设置轴线
            axisLine: {
                //设置轴线样式
                linestyle: {
                    color: '#ccc',
                    type: 'dashed'
                }
            }
        },
        yAxis: {
            type: 'value',
            //y周分割线配饰
            splitLine: {
                linestyle: {
                    type: 'dashed'
                }

            }
        },
        //需要两条数据进行对比，加入name属性进行说明
        series: [
            {
                data: [12200, 17932, 13901, 13934, 21290, 23300, 13300, 13320],
                type: 'bar',
                name: '期望薪资'
            },
            {
                data: [22820, 19932, 16901, 15934, 31290, 13300, 14300, 18320],
                type: 'bar',
                name: '实际薪资'
            }
        ],
        // 鼠标提示
        tooltip: {},
        color: [
            {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [
                    {
                        offset: 0,
                        color: '#34D39A' // 0% 处的颜色
                    },
                    {
                        offset: 1,
                        color: 'rgba(52,211,154,0.2)' // 100% 处的颜色
                    }
                ],
                global: false
            },
            {
                type: 'linear',
                x: 0,
                y: 0,
                x2: 0,
                y2: 1,
                colorStops: [
                    {
                        offset: 0,
                        color: '#499FEE' // 0% 处的颜色
                    },
                    {
                        offset: 1,
                        color: 'rgba(73,159,238,0.2)' // 100% 处的颜色
                    }
                ],
                global: false
            }
        ],
    }
    myChart.setOption(option)
}
groupSalaryChart()

//------------------饼图（左下角）男女平均薪资--------------
const sexSalaryChart = () => {
    const myChart = echarts.init(document.querySelector('#gender'))
    const option = {
        //设置标题
        title: [
            {
                //设置主标题的大小，位置
                text: '男女薪资分布',
                left: 10,
                top: 10,
                //设置标题文字大小
                textStyle: {
                    fontSize: 16
                }
            },
            //设置男生的标题
            {
                text: '男生',
                left: '45%',
                top: '45%',
                textStyle: {
                    fontSize: 12
                }
            },
            //设置女生标题
            {
                text: '女生',
                left: '45%',
                top: '85%',
                textStyle: {
                    fontSize: 12
                }
            }
        ],
        //鼠标移入的提示
        tooltip: {
            trigger: 'item'
        },
        series: [
            {
                name: '男生薪资分布',
                type: 'pie',
                radius: ['20%', '30%'],
                center: ['50%', '30%'],
                data: [
                    { value: 15, name: '1万以下' },
                    { value: 235, name: '1万-2万' },
                    { value: 580, name: '1.5万-2万' }
                ]
            },
            {
                name: '女生薪资分布',
                type: 'pie',
                radius: ['20%', '30%'],
                center: ['50%', '70%'],
                data: [
                    { value: 1048, name: '1万以下' },
                    { value: 235, name: '1万-2万' },
                    { value: 580, name: '1.5万-2万' }
                ]
            }
        ]
    }
    myChart.setOption(option)
}
sexSalaryChart()

//------------------地图：籍贯------------------
//首先插入echarts插件和china插件
const mapChart = () => {
    const myChart = echarts.init(document.querySelector('#map'))
    const mapData = [
        { name: '南海诸岛', value: 0 },
        { name: '北京', value: 3 },
        { name: '天津', value: 2 },
        { name: '上海', value: 4 },
        { name: '重庆', value: 1 },
        { name: '河北', value: 20 },
        { name: '河南', value: 23 },
        { name: '云南', value: 0 },
        { name: '辽宁', value: 15 },
        { name: '黑龙江', value: 12 },
        { name: '湖南', value: 2 },
        { name: '安徽', value: 5 },
        { name: '山东', value: 18 },
        { name: '新疆', value: 25 },
        { name: '江苏', value: 5 },
        { name: '浙江', value: 1 },
        { name: '江西', value: 4 },
        { name: '湖北', value: 3 },
        { name: '广西', value: 2 },
        { name: '甘肃', value: 9 },
        { name: '山西', value: 11 },
        { name: '内蒙古', value: 14 },
        { name: '陕西', value: 14 },
        { name: '吉林', value: 10 },
        { name: '福建', value: 7 },
        { name: '贵州', value: 4 },
        { name: '广东', value: 0 },
        { name: '青海', value: 3 },
        { name: '西藏', value: 6 },
        { name: '四川', value: 1 },
        { name: '宁夏', value: 1 },
        { name: '海南', value: 0 },
        { name: '台湾', value: 5 },
        { name: '香港', value: 0 },
        { name: '澳门', value: 5 }
    ]
    let option = {
        //配置标题
        title: {
            text: '籍贯分布',
            top: 15,
            left: 10,
            textStyle: {
                fontsize: 16
            }
        },
        series: [
            {
                // 添加数据的名字（和鼠标移入的提示有关系）
                name: '籍贯分布',
                //表示图表的类型是地图
                type: 'map',
                // 具体是什么地方的地图
                map: 'china',
                label: {   // 显示文本标签（每个区域、每个省的名字）
                    show: true,
                    color: 'rgba(0, 0, 0, 0.7)',
                    fontSize: 10//调整文字大小
                },
                //背景颜色
                itemStyle: {
                    // 每个区域省样式
                    areaColor: '#E0FFFF',
                    //省界线颜色
                    borderColor: 'red'
                },
                //高亮状态下鼠标移入后的效果
                emphasis: {
                    // 鼠标移入时状态
                    itemStyle: {
                        areaColor: '#34D39A',
                        shadowBlur: 20,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                },
                // 每个区域的数据
                data: mapData
            }
        ],
        // 鼠标移入的提示，换背景
        tooltip: {
            //提示框浮层内容格式器，支持字符串模板和回调函数两种形式。
            formatter: '{b}：{c}位学员',
            backgroundColor: 'rgba(0, 0, 0, 0.5)',
            borderColor: 'transparent',//透明       
            textStyle: {
                color: '#fff'
            }
        },
        //视觉映射组件
        visualMap: {
            // continuous表示连续型
            type: 'continuous',
            min: 0,
            max: 25,
            inRange: {
                color: ['#fff', '#0075F0']
            },
            text: [25, 0],
            left: 40,
            bottom: 20
        },
    }
    myChart.setOption(option)
}
mapChart()